/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	EntryService.java
 * 模块说明：	
 * 修改历史：
 * Nov 29, 2007 - lxm - 创建。
 */
package com.hd123.rumba.gwt.entry.client;

import java.util.Map;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.hd123.rumba.gwt.base.client.RBRemoteService;
import com.hd123.rumba.gwt.base.client.exception.ClientBizException;

/**
 * 应用程序入口 | 远程服务 | 接口类
 * 
 * @author lxm
 * 
 */
public interface EntryService extends RBRemoteService {

	public static class Locator {

		private static EntryServiceAsync service = null;

		private static final String SERVICE_URL = "RB/entry";

		public static EntryServiceAsync getService() {
			if (service == null) {
				service = (EntryServiceAsync) GWT.create(EntryService.class);
				ServiceDefTarget endpoint = (ServiceDefTarget) service;
				String moduleRelaUrl = GWT.getModuleBaseURL() + SERVICE_URL;
				endpoint.setServiceEntryPoint(moduleRelaUrl);
			}
			return service;
		}
	}

	/**
	 * 载入模块配置信息。
	 * 
	 * @return 包含模块配置信息的映射表。
	 * @throws ClientBizException
	 * 
	 */
	public Map loadConfig() throws ClientBizException;

	/**
	 * 登录系统。登录失败将返回一个异常。
	 * 
	 * @param loginName
	 *            指定登录用户名。
	 * @param password
	 *            指定登录口令。
	 * @param tokenValue
	 *            指定令牌值，允许NULL。
	 * @param domainCode
	 *            指定登录域代码。
	 * @throws ClientBizException
	 */
	public void login(String loginName, String password, String tokenValue,
			String domainCode) throws ClientBizException;
}
